Information processing device, method of saving and loading data, and information recording medium

ABSTRACT

To provide an information processing device, a method of saving and loading data, and an information recording medium. A volatile memory means of an information processing device of this invention stores data in a volatile manner. A nonvolatile memory means stores data in a nonvolatile manner. A determination means determines a cause of a reset which has been generated. A saving means saves the data stored in the volatile memory means into the nonvolatile memory means when the cause of the reset is a specified cause, and operation of the information processing device is stopped by a stopping means. A loading means loads the data stored in the nonvolatile memory means to the volatile memory means when the cause of the reset is not a specified cause, and operation of an operating system of the information processing device is started by a starting means. A program which implements the information processing device is recorded on an information recording medium.

BACKGROUND OF THE INVENTION

[0001] 1. Field of Invention

[0002] This invention relates to an information processing device, amethod of saving and loading data, and an information recording medium.In particular, this invention relates to an information processingdevice, and a method of saving and loading data, which determines thecause(s) when reset is generated, and saves and loads data between avolatile memory device and a nonvolatile memory device depending on thecause(s), and further relates to an information recording medium whichhas recorded a program implementing this device and method.

[0003] 2. Description of Related Art

[0004] Today, information processing devices such as widely-usedbusiness computers, portable information terminals, and computer gamedevices are wide spread and widely used.

[0005] In this type of information processing device, a CPU (CentralProcessing Unit) processes various data using a volatile memory device(main memory device) such as a RAM (Random Access Memory). A programwhich implements the processing executed by the CPU is stored in a ROM(Read Only Memory). When a power source of the information processingdevice is turned on, the CPU reads and executes a stored program calleda bootloader from a fixed address of the ROM.

[0006] When the data processed by the CPU needs to be held, a method isused in which, even when the power source of the information processingdevice main body is turned off, the power source is supplied to the RAM,and a refresh clock is given. Furthermore, there is a method in which,by using SRAM as the RAM, a supply of a refresh clock is not needed. Inaddition, a method is also used in which data stored in the RAM isstored in a nonvolatile memory device (second memory device) such as aflash EEPROM (Electrically Erasable Programmable ROM), a hard disk, or afloppy disk.

[0007] For example, in an OS (Operating System) such as Windows CE(Windows is a registered trademark of Microsoft Corporation) which hasbeen currently disseminated, there is a principle in which data isstored in a RAM, and even when the power source of the informationprocessing device main body is turned off, electricity is supplied tothe RAM, and the data which is stored in RAM is maintained.

[0008] Meanwhile, there are cases such that, due to malfunction of anapplication program itself managed by the OS of the informationprocessing device, the operation of the program runs away in the middleof the program, the program falls into an infinite loop, or reset isgenerated by an address of the main memory device which cannot be usedbeing accessed. Furthermore, there are cases such that as the user ofthe information processing device voluntarily presses a reset button, anSMI (Software Management Interrupt) is generated, the program which hasrun away is stopped, and the operation is restarted by resetting.

[0009] When the reset is thus generated, the CPU executes theabove-mentioned bootloader and initializes and clears the RAM as part ofthe bootloader processing.

[0010] In particular, in an OS which provides a non-preemptivemulti-task environment, such as Windows 3.1, a plurality of applicationprograms can be simultaneously operated, but if any of the programs runsaway, the entire information processing device has to be reset and theOS has to be reactivated.

[0011] In addition, in some information processing devices, a shut downfunction is provided which is not managed by the OS. An SMI interruptionis generated by pressing and operating a suspend button, for example,data, application programs, programs of the OS main body, and/or thelike stored in the RAM are saved in a hard disk or the like, in thisinterruption processing, and then the power source of the informationprocessing device itself is shut down. After this, when the power sourcebutton is pressed and operated, the data and program(s) stored in thehard disk or the like are loaded into the RAM, and interruptionprocessing is completed, and the system moves to the OS management. Thisis known as a hibernation function.

[0012] In addition, depending on the information processing device,there are cases such that the OS informs the application program of theshut down message, and the program which has been thus informed savesdata, and then the power source is turned off. However, the followingproblems exist in conventional information processing devices.

[0013] First, when a reset is generated for some reason, there is aproblem such that in an information processing device in which the CPUexecutes the bootloader, because RAM is initialized and cleared, thedata which has been processed by the operation up to that point is allerased, and the operation has to be re-executed.

[0014] In particular, in an OS such as Windows CE, which has a format inwhich data is maintained in the RAM as a rule, there is a problem suchthat the information stored up to present was all erased. Furthermore,in an OS such as Windows 3.1, which provides a non-preemptivemulti-task, there is a problem such that the data processed by anapplication program(s) which are operating normally, in addition to dataprocessed by the application program that has run away, is all erased.

[0015] Furthermore, there is a problem such that a transition to the SMIinterruption processing is needed during the OS operation in theinformation processing device with a hibernation function, and there isa possibility that the system might become unstable, and particularlywhen the pressing operation of the suspend button is performed while theOS has access to the hard disk, there is a risk that data on the harddisk might be erased.

[0016] Additionally, there is a problem such that if there is anabnormal condition in the middle of the application in a state in whichthe OS sends a sequential shutdown message to the application, thefollowing application cannot save data, and the OS cannot voluntarilyturn off the power source of the information processing device.

SUMMARY OF THE INVENTION

[0017] This invention reflects the above-mentioned problems, and anobject of this invention is to provide an information processing device,and a method of saving and loading data, which determines the cause(s)when reset is generated and which saves and loads the data between avolatile memory device and a nonvolatile memory device according to thecause(s), and also relates to an information recording medium whichrecords a program which implements this device and method.

[0018] In order to accomplish the above objects, the following inventionis disclosed according to the principles of this invention.

[0019] An information processing device of this invention is providedwith a volatile memory device, a nonvolatile memory device, adetermination unit, a saving unit, and a loading unit, and

[0020] the volatile memory device stores data in a volatile manner,

[0021] the nonvolatile memory device stores data in a nonvolatilemanner, and

[0022] the determination unit determines the cause of a reset which hasbeen generated.

[0023] When the cause of the reset is determined by the determinationunit to be a specified cause, the saving unit saves data which has beenstored in the volatile memory device in the nonvolatile memory device,and when the cause of the reset is determined by the determination unitnot to be a specified cause, the loading unit loads data which has beenstored in the nonvolatile memory device to the nonvolatile memorydevice.

[0024] Here, specified causes include cases in which a user wants tostop the information processing device in a normal manner, such as apressing operation of a suspend button or a shutdown instruction to theOS by the user, and also cases in which the reset is abnormallygenerated in the information processing device, such as by a pressingoperation of a reset button or a reset generation by an erroneous memoryaccess or the like.

[0025] Meanwhile, non-specified causes include cases in which the powersource of the information processing device is turned on by a pressingoperation of the power source button of the information processingdevice.

[0026] Furthermore, the determination unit of the information processingdevice of this invention can be structured so as to performdeterminations based on whether the data which is stored in the volatilememory device is valid.

[0027] Additionally, the loading unit of the information processingdevice of this invention can be structured so as to determine whetherthe data stored in the nonvolatile memory device is valid, and load thedata to the volatile memory device when the data is valid.

[0028] Furthermore, the information processing device of this inventioncan be structured so as to be provided with a stopping unit and astarting unit.

[0029] The stopping unit stops the operation of the informationprocessing device when the data has been saved by the saving unit.

[0030] The starting unit begins the operation of the operating system ofthe information processing device when the data has been loaded by theloading unit.

[0031] Furthermore, the saving unit of the information processing deviceof this invention can be structured so as to save data in a format thatcan be managed by the operating system of the information processingdevice.

[0032] A method of saving and loading the data of this invention can beimplemented by an information processing device which is provided with avolatile memory device and a nonvolatile memory device, and thefollowing steps are provided.

[0033] A determination step is provided which determines a cause of agenerated reset.

[0034] A saving step is provided which saves data which has been storedin the volatile memory device in the nonvolatile memory device when thecause of the reset is determined in the determination step to be aspecified cause.

[0035] A loading step is provided which loads data which has been storedin the nonvolatile memory device to the volatile memory device when thecause of the reset is determined in the determination step to be anon-specified cause.

[0036] The determination step in the method of saving and loading dataof this invention can be structured so as to determine based on whetherthe data stored in the volatile memory device is valid.

[0037] The loading step in the method of saving and loading data of thisinvention can be structured so as to determine whether the data storedin the nonvolatile memory device is valid, and to load the data to thevolatile memory device when the data is valid.

[0038] The method of saving and loading data of this invention can befurther structured with the following steps:

[0039] a stopping step which stops the operation of the informationprocessing device when the data has been saved in the saving step, and

[0040] a starting step which begins the operation of the operatingsystem of the information processing device when the data has beenloaded in the loading step.

[0041] The saving step in a method of saving and loading data of thisinvention can be structured to save data in a format that can be managedby the operating system of the information processing device.

[0042] A program which implements the method of saving and loading dataand the information processing device can be stored on an informationrecording medium such as a compact disk, a floppy disk, a hard disk, aphotomagnetoelectric disk, a digital video disk, a magnetic tape, or asemiconductor memory.

[0043] This program is a so-called bootloader, and is executed when theinformation processing device is reset, and can be stored in the ROM ofthe information processing device. This program can also be arranged ina server computer of the WWW (World Wide Web), and the operator canappropriately download the program and store the program in theinformation processing device, and the program can be updated.

BRIEF DESCRIPTION OF THE DRAWINGS

[0044]FIG. 1 is a block structural diagram of a first exemplaryembodiment of an information processing device of this invention.

[0045]FIG. 2 is a flowchart outlining in detail the boot processingwhich is executed when a reset is generated in the informationprocessing device shown in FIG. 1.

[0046]FIG. 3 is a flowchart outlining in detail the boot processing of asecond exemplary embodiment of this invention.

[0047]FIG. 4 is a block structural diagram of a third exemplaryembodiment of an information processing device of this invention.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

[0048] The following explains an embodiment of this invention.Furthermore, the embodiment which will be described below is designedfor this explanation, and this does not limit the scope of thisinvention. Therefore, those skilled in the art can use embodiments inwhich various elements or all the elements can be replaced withequivalent elements, and these embodiments are also included in thescope of this invention. In particular, this invention can be applied tovarious information processing devices such as business computers,portable information terminals, computer game devices, automobilenavigation devices, minicomputer sets, and the like.

[0049]FIG. 1 is a block structural diagram of a first exemplaryembodiment of an information processing device of this invention. It isdescribed below with reference to FIG. 1.

[0050] In the information processing device 101, the operation iscontrolled by the pressing operation of a power source button 102. Whenthe power source of the information processing device 101 is turned off,if the power source button 102 is pressed and operated, a reset isgenerated for the information processing device 101, and a CPU 103executes a bootloader stored in ROM 104.

[0051] Thus, when the power source is turned on, even if the powersource button 102 is pressed and operated, the power source is notimmediately turned off, but an indication of the operation istransmitted to the CPU 103 in the form of a reset generation.

[0052] After the bootloader executes a boot processing, which will beexplained below, the OS, such as Windows CE or the like, is activated,and an application program data processed by this application program ismanaged by this OS. The data processed by the application program can bestored in RAM 105, which is a volatile main memory device.

[0053] The user inputs an instruction for processing from an inputdevice such as a keyboard 106, and the CPU 103 displays the processingresult on a display device such as a display 107.

[0054] When the power source of the information processing device 101 isturned on, if the power source button 102 or the reset button 108 ispressed and operated, or if “completion of OS” is instructed to the OS,a reset is generated for the information processing device 101, and inthis case as well, the CPU 103 executes a bootloader stored in the ROM104.

[0055] Additionally, when an application program which processes datastored in the RAM 105 is running on this information processing device101, if a reset is generated because the application program runs awayor because an erroneous address is accessed, the CPU 103 executes thebootloader stored in the ROM 104.

[0056] The bootloader saves data stored in the RAM 105 in a flash EEPROM109 when it appears that the OS and/or the application program has beenoperated before the reset is generated, for example, when the datastored in RAM 105 is valid as data managed by the OS.

[0057] Meanwhile, when the OS or the application program does not appearto have been operated, for example, when an “unspecified value” isstored in RAM 105, or when the power source button 102 is pressed andoperated in a state in which the power source is turned off, if validdata is stored in the flash EEPROM 109 which can be loaded to the RAM105, the OS is activated after this is loaded to the RAM 105.

[0058] Here, the RAM 105 functions as a volatile memory device, theflash EEPROM 109 functions as a nonvolatile memory device, and the CPU103 functions as a determination means, a saving unit, a loading unit, astopping unit, and a starting unit. The ROM 104 functions as aninformation recording medium which stores the program of this invention.

[0059] Furthermore, the flash EEPROM 109 is used as a nonvolatile memorydevice in this embodiment. However, a nonvolatile memory device otherthan this, for example, a hard disk, a floppy disk, aphotomagnetoelectric disk, a digital video disk, a magnetic tape, anonvolatile semiconductor memory, or the like can be used, and theseembodiments are included within the scope of this invention.

[0060] Boot Processing

[0061]FIG. 2 is a flowchart outlining in detail the boot processingwhich is executed when a reset is generated in the informationprocessing device shown in FIG. 1.

[0062] First, the CPU 103 checks the cause(s) of the reset generation(step 5201) and checks whether the data stored in the RAM 103 should besaved in the flash EEPROM 109 (step S202).

[0063] Possible cause(s) of the reset generation are given above. Thefollowing examples are listed of cases in which saving should beperformed in response to the cause(s):

[0064] A case in which, when the power source of the informationprocessing device 101 is turned on, the user presses and operates thepower source button 102 or the reset button 108. For example, the casein which operation is interrupted, or the case in which part of theapplication program runs away, or the like.

[0065] A case in which, when the power source of the informationprocessing device 101 is turned on, the user instructs the OS to shutdown via the keyboard 106. For example, the case in which the operationis completed or the like.

[0066] Meanwhile, the following cases are listed in which saving shouldnot be performed:

[0067] A case in which, when the power source of the informationprocessing device 101 is turned off, the user presses and operates thepower source button 102, and the power source is turned on.

[0068] A case in which the data stored in the RAM 105 is different froma data format managed by the OS. For example, the case in which theprogram runs away, the content of the RAM 105 is destroyed, and recoveryis no longer available. Furthermore, when the power source is turned on,the same status can be seen because the data stored in the RAM 105 is“undefined”.

[0069] Therefore, the following should be checked in order to determinewhether saving should be performed:

[0070] Check whether the data stored in the RAM 105 is in a data formatmanaged by the OS.

[0071] Check whether the value of the register which manages theinput/output instruction for the display 107 is a specified value (avalue at which input/output is performed).

[0072] Furthermore, in a conventional information processing device,when a reset is generated, the content of RAM 105 is initialized andcleared, but in the information processing device of this invention,even when a reset is generated, the power source is supplied to the RAM105 as usual, and a clock signal is given to refresh. Thus, when the OSand/or the application is ordinarily operated before the reset, bootprocessing can be executed while validly holding the content of the RAM105.

[0073] When saving is to be performed, (step S202; Yes), the content ofthe RAM 105 is saved in the flash EEPROM 109 (step S203), the powersource of the information processing device 101 is turned off (stepS204), and this processing is completed. Here, if the content of the RAM105 is in a file format which the OS which operates in the informationprocessing device 101 can manage, a continuation of the operation ofthis information processing device 101 can be executed in anotherinformation processing device by copying the file to the otherinformation processing device, turning the power source on. This type offile is called a “snapshot.”

[0074] Meanwhile, when saving is not to be performed, (step S202; No),it is checked whether the file saved in the flash EEPROM 109 is valid asa snapshot (step S205). If it is valid (step S205; Yes), the snapshot isloaded from the flash EEPROM 109 to the RAM 105 (step S206), the OS isactivated (step S207), and this processing is completed.

[0075] By so doing, the OS can return to the previous operationcondition. Furthermore, even if part of the application program runsaway, data processed by the application program that has run away inaddition to data processed by another application program(s), can berecovered.

[0076] Meanwhile, if the file is not valid as a snapshot (step S205;No), the program proceeds to step S207, the OS is activated, and thisprocessing is completed.

[0077] In order to make the boot processing of the above-mentionedembodiment more secure, in this embodiment, the following new processingis added to the boot processing shown in FIG. 2. FIG. 3 is a flowchartoutlining in detail the boot processing in a second exemplaryembodiment. Furthermore, steps which perform the same processing use thesame symbols in FIGS. 2 and 3.

[0078] In this embodiment, when a reset is generated, hardware otherthan the RAM 105, for example, the input/output mechanism such as akeyboard 106, the display 107, the flash EEPROM 109 and system(s) of theCPU 103 such as an interruption setting flag are initialized (stepS301), and the program proceeds to step 5201.

[0079] As described earlier, during the initialization in step S301 aswell, the power source and a refresh signal are supplied to the RAM 105.If there is data stored in the RAM 105 before the reset, this ismaintained.

[0080] By the processing of step S301, even if the status of eachhardware is abnormal due to malfunction of the application program, forexample, this can be corrected to a normal status by this bootprocessing. Meanwhile, if necessary data is stored in the RAM 105 beforethe reset, an opportunity to save the data is obtained.

[0081] Thereafter, the content of the RAM 105 is checked and the causeof the reset generation is checked (step S201). If the data in the RAM105 is to be saved (step S202; Yes), the data is set in the flash EEPROM109 (step S203), and the power source is turned off (step S204).

[0082] If saving is not to be performed (step 5202; No), the RAM 105 isinitialized and cleared, and other systems such as hardware areinitialized, if needed, (step 5302) and a snapshot of the flash EEPROM109 is checked to see whether it is valid. If it is valid (step S205;Yes), the snapshot is loaded from the flash EEPROM 109 to the RAM 105(step S206), and the OS is activated (step S207). If it is not valid(step S205; No), the OS is activated (step S207), and this processing iscompleted.

[0083] In a conventional hibernation function, there are cases such thatthe system becomes unstable, but, in this embodiment, the content in RAM105 can be saved, the power source can be turned off, the content whichhas been saved can be loaded, and the operation status in theinformation processing device 101 can be recovered.

[0084] The program(s) to execute these boot processings is stored in theROM 104. This can be a program(s) independent from the OS. Because ofthis, the OS does not need to execute processing for data recovery, andthe reliability of the OS itself cannot be damaged. Meanwhile, even ifthe bootloader is made to be a program independent from the OS, it iseasy to make a file format of the snapshot into a format which can bemanaged by the OS, and the above-mentioned effects can be obtained inthis case.

[0085] This invention can also be applied to the information processingdevice shown in FIG. 4, in addition to the information processing device101 of the above-mentioned embodiment. FIG. 4 is a block structuraldiagram showing an outline of a third exemplary embodiment of aninformation processing device of this invention.

[0086] An information processing device 401 of this embodiment iscontrolled by a CPU 402, and uses a RAM 403 as a main memory device.

[0087] The CPU 402 controls a video controller 404 and a video RAM 405and outputs a display signal to an LCD (Liquid Crystal Display)interface (I/F) 406 and a CRT (Cathode Ray Tube) interface 407.

[0088] The CPU 402 controls a bus 409 in cooperation with a buscontroller 408. An FDD (Floppy Disk Drive) controller 410, a BIOS (BasicInput Output System) ROM 411 in which a bootloader is stored, aninput/output controller 412, and an IDE (Integrated Device Electronics)interface 413, to which a hard disk, a flash memory card and/or the likeare externally connected, are connected to the bus 409. Furthermore,this bus 409 is based on the ISA (Industry Standard Architecture) busspecification, which is widely disseminated, and expansion of the systembecomes easy with the ISA bus interface 414. The FDD controller 410 isconnected to an external FDD via the FDD interface 415.

[0089] The input/output controller 412 controls input/output deviceswhich are externally connected via a serial communication interface 416,a parallel communication interface 417, a keyboard interface 418, amouse interface 419, and a speaker interface 420.

[0090] Thus, even in a minicomputer in which the CPU and a peripheraldevice controller are integrated, this invention can be applied byrecording the bootloader in ROM 411. That is, as reset is generated,data can be saved and loaded between the RAM 403 and an external harddisk, flash memory card or the like connected via the IDE interface 413.

[0091] As explained above, according to this invention, the followingeffects can be obtained.

[0092] First, an information processing device and a method of savingand loading the data can be provided in which, when a reset isgenerated, the cause is determined, and depending on the cause, data issaved and loaded between a volatile memory device and a nonvolatilememory device.

[0093] In particular, an information processing device and a method ofsaving and loading the data can be provided in which, in the case of anunexpected condition such as a runaway of an application program, datawhich has been processed can be securely saved, and the operation statuscan be recovered.

[0094] Furthermore, an information processing device and a method ofsaving and loading the data can be provided in which saved data istransferred to another information processing device and a continuationof the operation can be implemented in the other information processingdevice.

[0095] Furthermore, an information recording medium which has recorded aprogram can be easily distributed and sold as a software product,independent from the hardware of the information processing device. Ifthe program stored on the information recording medium of this inventionis executed in an information processing device such as a generalpurpose computer, the information processing device and the method ofsaving and loading data related to the above-mentioned invention can beimplemented.

What is claimed is:
 1. An information processing device having aprocessor which executes a loader in accordance with a reset vectorwhich exists in a fixed address, wherein the loader saves data necessaryfor copying hardware information which is obtained as a result of apower-on self test, and for activating an operating system, and datafrom an operation history of the loader itself which is necessary whenthe loader is next operated, in an independent memory region which doesnot affect the power-on self test and the operating system, and thereset vector is revised by input/output of a cryptographic code, andthen processing is executed in the operating system.
 2. An informationprocessing system having a loader which is arranged as a processindependent from an operating system in order to activate the operatingsystem, wherein when the activation of the operating system issuccessful, the loader suspends operation in a state which is protectedfrom the operating system, and when the operating system is completed bya processor suspension, a reset, or jumping to a unique entry forcompletion, the loader restarts operation based on system informationwhich was obtained during activation and executes shutdown processingand informs a user of the operation state by using a man machineinterface.
 3. An information processing device having a processor and anauxiliary memory whose access speed is lower than that of a memory,wherein data conversion is performed to data stored in the memory aftera sequencing process is performed which facilitates repetition of thesame data, and when a reset or shutdown request is generated, backup isperformed within an actual processing time in which the processortransfers data to the auxiliary memory, without holding the processeddata in the memory.
 4. The information processing system as set forth inclaim 3, wherein when the backup data is recovered, reverse conversionis performed, premised upon the conversion processing having beenperformed, and the data reappears in the memory.
 5. An informationprocessing device, in which data for activating an operating system isdivided into sections, having a header including an address and sizeinformation, and in which the format is fixed, wherein a dummy sectionis added and divided into unused regions which do not affect theoperating system, based on memory map information in which thedeveloping address is separately prepared, and this dummy section isused for information recording especially for the user.
 6. Aninformation processing device which performs power management of aperipheral device by a BIOS (Basic Input/Output Control System), whereinwhen the system is completed, the BIOS code is set in a usable state byresetting a processor, while maintaining a memory content, and duringthe resetting, a state of the peripheral device is maintained, and apower source of the peripheral device is turned off in accordance withthe BIOS code.
 7. An information processing system in which a content ofan operating system program disk described in a ROM execution format iscopied to a RAM and executed, wherein a device that becomes unnecessaryat a stage at which the operating system is completely copied to the RAMis recorded as structure information in advance, and a loader calls apower source control routine held by the BIOS, at a stage at which theoperating system is completely copied to the RAM, and hands control overto the operating system after the power source of the unnecessary deviceis turned off with reference to the structure information.